home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Bavarian
/
Bavarian #099 (19xx)(APS Electronic).zip
/
Bavarian #099 (19xx)(APS Electronic).adf
/
trucking
< prev
next >
Wrap
Text File
|
1988-12-02
|
54KB
|
2,148 lines
REM Programm : TRUCKING
REM Art : Wirtschaftsspiel
REM Basic : AmigaBasic
REM Computer : A500
REM Autor : Martin Bormann
REM Anschrift : Wohldenbergstr.19
REM 3201 Holle 7
REM Advisor : Werner Lentz
REM Anschrift : Hohnsen 17
REM 3200 Hildesheim
REM I : November 1988-Januar 1989
REM U :
SCREEN 2,640,240,3,2
WINDOW 2,"",,0,2
WINDOW 3,"",(0,200)-(630,225),0,2
DECLARE FUNCTION xOpen& LIBRARY
DECLARE FUNCTION xRead& LIBRARY
DECLARE FUNCTION xWrite LIBRARY
DECLARE FUNCTION AllocMem&() LIBRARY
DECLARE FUNCTION Move& LIBRARY
DIM stadt$(85),stadtx%(85),stadty%(85),lkenn%(85)
DIM waren$(41),tr(41),pr(41)
DIM stand$(35),standx%(35),standy%(35),stkos(35),lstand%(35)
DIM land$(10)
DIM kfz(5,4,4),die(5,4,4),stre(5,4,4),fako(5,4,4)
DIM ko(5,4),stand1%(5,4),stand2%(5,4),stand0%(5)
DIM topscore$(15),topscore(15),fahrt$(11),fahrt(11),landfahrt(11)
DIM inh(4),ver(4),ab(4),tem(4),ra(4),allgem$(8),reifzu$(8)
DIM alter(5,4,4),rei(5,4,4)
DIM ro%(24726),hl%(2595)
DIM monat$(12)
RESTORE bildname
FOR i%=1 TO 9:READ bild$(i%):NEXT i%
LIBRARY "dos.library"
LIBRARY "exec.library"
LIBRARY "graphics.library"
PALETTE 1,1,1,1:PALETTE 2,0,0,0:PALETTE 3,1,.8,0:PALETTE 4,.33,.87,0
l=1:GOSUB ladebild
text "Einen kleinen Augenblick bitte !"
OPEN "trucking.set/pfeil" FOR INPUT AS 1
OBJECT.SHAPE 1,INPUT$(LOF(1),1)
CLOSE 1
OBJECT.SHAPE 2,1
OBJECT.SHAPE 3,1
OBJECT.SHAPE 4,1
OPEN "trucking.set/lkw" FOR INPUT AS 1
OBJECT.SHAPE 5,INPUT$(LOF(1),1)
CLOSE 1
OBJECT.SHAPE 6,5
OBJECT.SHAPE 7,5
OBJECT.SHAPE 8,5
OBJECT.SHAPE 9,5
OBJECT.SHAPE 10,5
COLLISION OFF
OPEN "I",#1,"trucking.set/stadtko"
FOR i%=0 TO 85
LINE INPUT #1,stadt$(i%)
INPUT #1,stadtx%(i%)
INPUT #1,stadty%(i%)
NEXT i%:CLOSE 1
GOSUB truckinghigh
FOR i%=0 TO 8:lkenn%(i%)=0:NEXT i%
FOR i%=9 TO 11:lkenn%(i%)=1:NEXT i%
lkenn%(12)=2
FOR i%=13 TO 17:lkenn%(i%)=3:NEXT i%
FOR i%=18 TO 50:lkenn%(i%)=4:NEXT i%
FOR i%=51 TO 54:lkenn%(i%)=5:NEXT i%
FOR i%=55 TO 58:lkenn%(i%)=6:NEXT i%
FOR i%=59 TO 66:lkenn%(i%)=7:NEXT i%
FOR i%=67 TO 69:lkenn%(i%)=8:NEXT i%
FOR i%=70 TO 76:lkenn%(i%)=9:NEXT i%
FOR i%=77 TO 85:lkenn%(i%)=10:NEXT i%
OPEN "I",#1,"trucking.set/waren"
FOR i%=0 TO 41
LINE INPUT #1,waren$(i%)
INPUT #1,tr(i%)
INPUT #1,pr(i%)
NEXT i%:CLOSE 1
RESTORE lkwpreise
FOR i%=1 TO 4:READ lkw$(i%),lkwpreis(i%):NEXT i%
FOR i%=1 TO 4:READ inh(i%),ver(i%),ab(i%),tem(i%),ra(i%):NEXT i%
FOR i%=1 TO 8:READ allgem$(i%):NEXT i%:FOR i%=1 TO 8:READ reifzu$(i%):NEXT i%
RESTORE standko
FOR i%=1 TO 35
READ a
stand$(i%)=stadt$(a)
standx%(i%)=stadtx%(a):standy%(i%)=stadty%(a):lstand%(i%)=lkenn%(a)
READ stkos(i%)
NEXT i%
stand$(0)="------------"
RESTORE land
FOR i%=0 TO 10:READ land$(i%):NEXT i%
neuspiel=0
CALL SetDrMd(WINDOW(8),1)
RESTORE monat
FOR i%=1 TO 12:READ monat$(i%):NEXT
jahr=1988
neuspiel:
IF neuspiel=1 THEN
l=1:GOSUB ladebild
neuspiel=0:GOSUB frei
text "Gleich geht´s wieder los."
jahr=1988
ERASE kfz:DIM kfz(5,4,4)
ERASE die:DIM die(5,4,4)
ERASE stre:DIM stre(5,4,4)
ERASE fako:DIM fako(5,4,4)
ERASE ko:DIM ko(5,4)
ERASE stand1%:DIM stand1%(5,4)
ERASE stand2%:DIM stand2%(5,4)
ERASE stand0%:DIM stand0%(5)
END IF
RANDOMIZE TIMER
FOR i=1 TO 5
poi(i)=0
kap(i)=100000&
kr=INT(RND*40001&+1)+50000&
kredit(i)=-kr
rp(i)=0:stern(i)=0:besitz(i)=0:stand0%(i)=0
FOR j=1 TO 4
stand1%(i,j)=15:stand2%(i,j)=100
NEXT j
NEXT i
un=1:au=0:fa=1:an=0:runde=1:b1%=9:b2%=19:b3%=61:b4%=87:zuf1=0:sonder=0
urlaub=0
abfr:
jack=0:renn=INT(RND*40000&)+80000&
GOSUB frei
text "Anzahl der Unternehmer ? (max.5) < 0 = Spiel laden 99 = Anleitung >"
INPUT unt
IF unt=0 THEN GOTO losa
IF unt=99 THEN GOTO erkl
IF unt>5 THEN
GOSUB frei
text "Unkorrekte Eingabe !!!"
text ".... bin beleidigt !!!"
FOR i=1 TO 5000:NEXT i
GOTO abfr
END IF
FOR i=1 TO unt
a$="Name Unternehmer # "+STR$(i)+" (max.10 Zeichen)"
GOSUB frei
text a$
LINE INPUT nam$(i)
IF LEN(nam$(i)) >10 THEN
nam$(i)=MID$(nam$(i),1,10)
END IF
a$=nam$(i)+"´s Unternehmen heißt ? (max.10 Zeichen)"
text a$
LINE INPUT firma$(i)
IF LEN(firma$(i)) >10 THEN
firma$(i)=MID$(firma$(i),1,10)
END IF
NEXT i
nam$(0)="little Amiga"
text "OK Trucker, ich schmeiß die Maschiene an !"
yupp=1:sta=1
GOTO start
starta:
IF weiter=1 THEN
PUT(0,0),ro%,PSET
IF besitz(un)>0 THEN
kap(un)=kap(un)-25000:jack=jack+15000
text "Strafe: 25.000 DM"
END IF
GOSUB poi
un=un+1
IF un>unt THEN un=1:runde=runde+1:yupp=yupp+1
au=0:an=0:fa=1:zuf1=0:ERASE fako:DIM fako(5,4,4)
kreditzins=0:sta=1
kap(un)=kap(un)-rp(un)
IF kap(un)<0 THEN
kreditzins=INT((kap(un)/100)*3)
kap(un)=kap(un)+INT(kreditzins/besitz(un))
END IF
weiter=0
GOTO start2
END IF
zuf1=0
IF fa>besitz(un) THEN
GOSUB poi
un=un+1
IF un>unt THEN un=1:runde=runde+1:yupp=yupp+1
fa=1:ERASE fako:DIM fako(5,4,4)
kreditzins=0:sta=1
kap(un)=kap(un)-rp(un)
IF kap(un)<0 THEN
kreditzins=INT((kap(un)/100)*3)
kap(un)=kap(un)+INT(kreditzins/besitz(un))
END IF
END IF
start:
IF kap(un)<0 THEN kreditzins=INT((kap(un)/100)*3)
l=3:GOSUB ladebild
GOSUB frei
GET(0,0)-(640,200),ro%
start2:
IF yupp=13 THEN GOSUB highcontrol:yupp=1:jahr=jahr+1:runde=1:sonder=0
IF yupp=12 AND sonder=0 THEN sonder=1:GOSUB sonderinfo
IF yupp=7 AND urlaub=0 THEN urlaub=1:GOSUB sonderinfo1
GOSUB sonderinfo2
GOSUB dipr
COLOR 1,6
settext 20,15,"Unternehmer : "+nam$(un)
settext 20,23,"Firma : "+firma$(un)
settext 20,31,"Abgaben : "+STR$(rp(un))
settext 20,39,"Dispokredit : "+STR$(kredit(un))
settext 20,47,"Kreditzinsen: "+STR$(kreditzins)
settext 250,15,monat$(runde)+" "+STR$(jahr)
settext 250,23,"Spieler # "+STR$(un)
settext 250,31,"Auftrag # "+STR$(au)
settext 250,39,"LKW´s : "+STR$(besitz(un))
settext 250,47,"Fahrt : "+STR$(fa)
xs%=510
FOR i=1 TO 4:ys%=8+(i*9)
e&=Move&(WINDOW(8),xs%,ys%)
PRINT stand$(ko(un,i))
NEXT i
IF au>0 THEN GOSUB auftrag2
IF au=0 THEN
COLOR 0,6
settext 360,77,"JACKPOTT :"+STR$(jack)+" DM"
settext 360,93,"Nächstes Rennen ab:"
settext 360,101,STR$(renn)+" DM"
END IF
start3:
GOSUB dipr
COLOR 1,3:GOSUB box
settext 101,127,STR$(kap(un))
settext 235,85,STR$(dp)
xs%=130
FOR i=1 TO 4:ys%=138+(i*10)
e&=Move&(WINDOW(8),xs%,ys%)
PRINT kfz(un,sta,i);
IF fako(un,sta,i)=1 THEN PRINT "*"
NEXT i
xs%=174
FOR i=1 TO 4:ys%=138+(i*10)
e&=Move&(WINDOW(8),xs%,ys%)
PRINT die(un,sta,i)
NEXT i
xs%=239
FOR i=1 TO 4:ys%=138+(i*10)
e&=Move&(WINDOW(8),xs%,ys%)
PRINT stre(un,sta,i)
NEXT i
GOSUB frei
start1:
IF jack>renn THEN GOTO rennen
GOSUB maus
IF y>6 AND y<49 AND x>14 AND x<483 THEN
GOTO spielercheck
END IF
IF y>68 AND y<89 AND x>24 AND x<197 THEN
IF x>24 AND x<74 THEN weiter=1:GOTO starta
IF x>86 AND x<136 THEN GOTO route
IF x>147 AND x<197 THEN GOTO losa
GOTO start1
END IF
IF y>93 AND y<114 AND x>24 AND x<197 THEN
IF x>24 AND x<74 THEN
IF zuf1=1 THEN GOTO unver
zuf=INT(RND*100+1):IF zuf<30 THEN GOTO unver
GOTO handel
END IF
IF x>86 AND x<136 THEN GOTO yuppi
IF x>147 AND x<197 THEN
au=au+1
IF au>4 THEN GOTO noauftrag
COLOR 6,6:settext 250,31," "
COLOR 1,6:settext 250,31,"Auftrag # "+STR$(au)
GOSUB auftrag
GOTO start1
END IF
END IF
IF x>507 AND x<618 AND y>9 AND y<46 THEN
IF y>9 AND y<19 THEN sta=1:PUT(0,0),ro%,PSET:GOTO start2
IF y>18 AND y<28 THEN sta=2:PUT(0,0),ro%,PSET:GOTO start2
IF y>27 AND y<37 THEN sta=3:PUT(0,0),ro%,PSET:GOTO start2
IF y>36 AND y<46 THEN sta=4:PUT(0,0),ro%,PSET:GOTO start2
GOTO start1
END IF
IF x>205 AND x<255 AND y>93 AND y<114 THEN GOTO standorte
IF x>265 AND x<314 AND y>93 AND y<114 THEN GOTO ende
IF x>353 AND x<615 AND y>61 AND y<183 THEN
IF y>61 AND y<87 THEN an=1:GOTO box1
IF y>93 AND y<119 THEN an=2:GOTO box1
IF y>125 AND y<151 THEN an=3:GOTO box1
IF y>157 AND y<183 THEN an=4:GOTO box1
GOTO start1
END IF
IF y>138 AND y<181 AND x>21 AND x<124 THEN
IF y<181 THEN ll=4
IF y<171 THEN ll=3
IF y<161 THEN ll=2
IF y<151 THEN ll=1
IF kfz(un,sta,ll)=1 THEN
GOTO lkwcheck
END IF
END IF
IF y>138 AND y<181 AND x>166 AND x<233 THEN
IF y<181 THEN ue=4
IF y<171 THEN ue=3
IF y<161 THEN ue=2
IF y<151 THEN ue=1
maxdie=9*inh(ue)
IF kfz(un,sta,ue)=0 THEN
text "Ohne LKW keine Dieselgutscheine !"
GOTO start1
END IF
IF die(un,sta,ue)>maxdie THEN
BEEP
text "Wenn Sie mehr Diesel benötigen, sollten Sie sich eine Ölfirma kaufen !"
GOTO start1
END IF
die(un,sta,ue)=die(un,sta,ue)+inh(ue)
kap(un)=kap(un)-INT(dp*inh(ue))
GOSUB dipr
COLOR 3,3:settext 235,85," ":settext 101,127," "
xs%=174:ys%=138+(ue*10)
e&=Move&(WINDOW(8),xs%,ys%)
PRINT " ":COLOR 1,3
e&=Move&(WINDOW(8),xs%,ys%)
PRINT die(un,sta,ue)
settext 101,127,STR$(kap(un))
settext 235,85,STR$(dp)
END IF
GOTO start1
handel:
IF ko(un,sta)=0 THEN
text "Wo soll der LKW hin ?"
text "In Ihr Wohnzimmer ? Ich sehe keinen Standort !"
FOR i=1 TO 2000:NEXT i
GOSUB frei:GOTO start1
END IF
l=2:GOSUB ladebild
GET(0,0)-(640,200),ro%
GOSUB frei:COLOR 0,5
settext 100,188,STR$(kap(un))
vk=0:text "Ihr Wunsch ?"
handel1:
GOSUB maus
IF y>172 AND y<190 THEN
IF x>271 AND x<350 THEN
IF vk=1 THEN
text "Bitte treffen Sie Ihre Wahl."
GOTO handel1
END IF
IF vk=2 THEN text "Aaah ! Ich wußte es doch ..."
text "Sie möchten einen LKW kaufen ?"
text "Seien Sie herzlich willkommen ! - Wählen Sie aus meinem Angebot."
vk=1:GOTO handel1
END IF
IF x>376 AND x<471 THEN
IF vk=2 THEN
text "Dadurch bekommen Sie auch nicht mehr Geld."
GOTO handel1
END IF
IF vk=1 THEN text "... und ich dachte schon - nun ja ..."
text "Verkaufen wollen Sie ?"
text "Dann zeigen Sie mal Ihren alten Laster..."
PUT(0,0),ro%,PSET
vk=2:GOTO handel1
END IF
IF x>497 AND x<590 THEN GOTO start
END IF
IF y>13 AND y<94 THEN
IF x>6 AND x<304 THEN GET(43,20)-(237,64),hl%:ue=1
IF x>=304 AND x<622 THEN GET(326,13)-(568,66),hl%:ue=2
END IF
IF y>=94 AND y<164 THEN
IF x>6 AND x<304 THEN GET(35,99)-(289,135),hl%:ue=3
IF x>=304 AND x<622 THEN GET(383,98)-(540,142),hl%:ue=4
END IF
IF vk=1 AND kap(un)-lkwpreis(ue)<kredit(un) THEN
text "Ich habe hier Ihre Bankauskunft. Ihr Kontostand beläuft sich momentan"
text "auf "+STR$(kap(un))+" DM. Leider ist eine Finanzierung nicht möglich."
text "Diese Auskunft ist kostenpflichtig. Sie zahlen 50 DM !"
kap(un)=kap(un)-50:jack=jack+50:settext 100,188," "
settext 100,188,STR$(kap(un))
vk=0:GOTO handel1
END IF
IF vk=1 AND kfz(un,sta,ue)=1 THEN
text "Das Straßenverkehrsamt teilt mit, daß Sie bereits einen"
text lkw$(ue)+" in Ihrem Standort besitzen. Dieser Spaß kostet Sie 5.000 DM"
kap(un)=kap(un)-5000:jack=jack+5000:settext 100,188," "
settext 100,188,STR$(kap(un))
vk=0:GOTO handel1
END IF
IF vk=1 THEN
text "Sehr gute Wahl, ein "+lkw$(ue)+" leistet immer gute Dienste."
text "Der Kaufpreis in Höhe von"+STR$(lkwpreis(ue))+" DM wird abgebucht."
kap(un)=kap(un)-lkwpreis(ue)
fako(un,sta,ue)=0:kfz(un,sta,ue)=1:rp(un)=rp(un)+ab(ue)
die(un,sta,ue)=0:alter(un,sta,ue)=0:stre(un,sta,ue)=0
rei(un,sta,ue)=0:besitz(un)=besitz(un)+1:stern(un)=stern(un)+ue
settext 100,188," "
settext 100,188,STR$(kap(un))
vk=0
IF ue=1 THEN xl=43:yl=20
IF ue=2 THEN xl=326:yl=13
IF ue=3 THEN xl=35:yl=99
IF ue=4 THEN xl=383:yl=98
IF ue=1 OR ue=3 THEN
WHILE xl>-300
PUT(xl,yl),hl%,PSET
xl=xl-3
WEND
END IF
IF ue=2 OR ue=4 THEN
WHILE xl<640
PUT(xl,yl),hl%,PSET
xl=xl+3
WEND
END IF
text "Ihr Wunsch ?"
GOTO handel1
END IF
IF vk=2 AND kfz(un,sta,ue)=0 THEN
text "Sie besitzen keinen "+lkw$(ue)+" in Ihrem Standort !!"
text "Zahlen Sie 10.000 DM Strafe !!"
kap(un)=kap(un)-10000
jack=jack+10000
settext 100,188," "
settext 100,188,STR$(kap(un))
vk=0
GOTO handel1
END IF
IF vk=2 THEN
text "Hmm, ein "+lkw$(ue)+" naja, also wenn ich ehrlich bin ..."
text "Hier ein Rostfleck, da grober Schmutz, der Aschenbecher ist voll ..."
FOR i=1 TO 3000:NEXT i
wawe=((INT(lkwpreis(ue)/100)*80)-INT(stre(un,sta,ue)/ue+1))
wawe=wawe-(INT(alter(un,sta,ue)*20)-INT(RND*(ue*500))+1)
IF wawe<0 THEN wawe=INT(RND*10+1)
text "Also, ich biete Ihnen"+STR$(wawe)+" DM für diesen Wagen."
text "Geben Sie Ihr Einverständnis durch anklicken des VERKAUFEN-Feldes."
text "Jedes andere Feld bedeutet die Ablehnung meines großzügigen Angebotes."
GOSUB maus
IF y>172 AND y<190 AND x>376 AND x<470 THEN
vk=0
text "Das Geld wird Ihrem Konto zugewiesen."
kap(un)=kap(un)+wawe
fako(un,sta,ue)=0:kfz(un,sta,ue)=0:rp(un)=rp(un)-ab(ue)
die(un,sta,ue)=0:alter(un,sta,ue)=0:stre(un,sta,ue)=0
rei(un,sta,ue)=0:besitz(un)=besitz(un)-1:stern(un)=stern(un)-ue
settext 100,188," "
settext 100,188,STR$(kap(un))
GOTO handel1
END IF
text "Dann eben nicht !"
vk=0
END IF
GOTO handel1
standorte:
l=5:GOSUB ladebild
GOSUB frei
FOR i=1 TO 4
OBJECT.X i,stand1%(un,i)-10
OBJECT.Y i,stand2%(un,i)
OBJECT.ON i
NEXT i
COLOR 1,6
xs%=10
FOR i= 1 TO 4:ys%=152+(i*10)
e&=Move&(WINDOW(8),xs%,ys%)
PRINT stand$(ko(un,i))
NEXT i
text "Anzahl der belegten Standorte: "+STR$(stand0%(un))
standorte1:
text "Wähle neu !"
GOSUB maus
IF y>0 AND y<16 THEN
IF x>0 AND x<86 THEN OBJECT.OFF:GOTO start
END IF
FOR i=1 TO 4
IF x>stand1%(un,i)-25 AND x<stand1%(un,i)+25 AND y>stand2%(un,i)-25 AND y<stand2%(un,i)+25 THEN
IF stand1%(un,i)<>15 AND stand2%(un,i)<>100 THEN
jj1=1
ELSE
jj1=0
END IF
spr=i
GOTO standorte2
END IF
NEXT i
GOTO standorte1
standorte2:
IF jj1=0 THEN
text "Wähle neuen Standort !"
ELSE
text "Zur Standortaufgabe auf eine freie Fläche klicken."
text "Zum Standortwechsel neue Stadt anklicken."
text "Bei Irrtum alten Standort neu wählen."
END IF
GOSUB maus
jj2=0
FOR i=1 TO 35
IF x>standx%(i)-5 AND x<standx%(i)+5 AND y>standy%(i)-5 AND y<standy%(i)+5 THEN
jj2=i
text "Gewählte Stadt : "+stand$(i)+" in "+land$(lstand%(i))
GOTO standorte3
END IF
NEXT i
IF jj1=0 THEN GOTO standorte2
FOR i=1 TO 4
IF kfz(un,spr,i)=1 THEN
text "Verkauf des Standortes unmöglich ! LKW im Standort !!"
GOTO standorte1
END IF
NEXT i
RANDOMIZE TIMER
zuf=INT(RND*(10)+1)
IF zuf<5 THEN
text "Ein Interessent zahlt 7.000 DM für Ihr Standortgebäude !"
kap(un)=kap(un)+7000
ELSE
text "Ihr Makler hat keinen Kaufinteressenten gefunden."
text "Sie erhalten kein Geld !"
END IF
stand1%(un,spr)=15:stand2%(un,spr)=100:rp(un)=rp(un)-stkos(ko(un,spr))
stand0%(un)=stand0%(un)-1:ko(un,spr)=0
OBJECT.X spr,5
OBJECT.Y spr,100
GOSUB standorte4:GOTO standorte1
standorte3:
FOR i=1 TO 4
IF stand1%(un,i)=standx%(jj2) AND stand2%(un,i)=standy%(jj2) THEN
IF jj1=1 THEN
text "Standort bleibt erhalten !"
GOTO standorte1
END IF
text "Doppelbelegung nicht möglich !!"
GOTO standorte2
END IF
NEXT i
IF jj1=1 THEN
text "Es entstehen Umzugskosten von 5.000 DM"
kap(un)=kap(un)-5000
text "Ihr Barvermögen lt. Kontoauszug : "+STR$(kap(un))+" DM"
stand0%(un)=stand0%(un)-1:rp(un)=rp(un)-stkos(ko(un,spr))
GOTO stdo
END IF
IF kap(un)-10000<kredit(un) THEN
text "Negative Bankauskunft. Standortfinanzierung unmöglich !"
text "Ihr Barvermögen lt. Kontoauszug : "+STR$(kap(un))+" DM"
GOTO standorte1
END IF
text "Es wird eine Standortgebühr von 10.000 DM erhoben."
text "Monatliche Belastung : "+STR$(stkos(jj2))+" DM"
stdo:
OBJECT.X spr,standx%(jj2)-10:OBJECT.Y spr,standy%(jj2)
stand1%(un,spr)=standx%(jj2):stand2%(un,spr)=standy%(jj2)
rp(un)=rp(un)+stkos(jj2):stand0%(un)=stand0%(un)+1
ko(un,spr)=jj2:kap(un)=kap(un)-10000
GOSUB standorte4:GOTO standorte1
standorte4:
COLOR 1,6
xs%=10
FOR i=1 TO 4:ys%=152+(i*10)
e&=Move&(WINDOW(8),xs%,ys%)
PRINT " "
e&=Move&(WINDOW(8),xs%,ys%)
PRINT stand$(ko(un,i))
NEXT i
RETURN
yuppi:
l=6:GOSUB ladebild:GOSUB frei
LOCATE 7,24:COLOR 0,1
PRINT "Platz 1 der Trucking-Yuppi-Hall : "
COLOR 2,1:LOCATE 8,24
PRINT topscore$(1);" ";topscore(1);" Punkte"
COLOR 5,1
FOR i=2 TO 8
LOCATE i+8,10:PRINT i;"."
LOCATE i+8,15:PRINT topscore$(i)
LOCATE i+8,30:PRINT topscore(i)
LOCATE i+8,40:PRINT i+7;"."
LOCATE i+8,45:PRINT topscore$(i+7)
LOCATE i+8,60:PRINT topscore(i+7)
NEXT i
IF topscore$(1)<>"MaWe+Amiga" THEN
text "Der Glückwunsch zum 1. Platz geht an "+topscore$(1)+" !!"
GOTO yuppi1
END IF
FOR i=2 TO 15
IF topscore$(i)<>"MaWe+Amiga" THEN
text "Zur Zeit der Ranghöchste : "+topscore$(i)+" !"
GOTO yuppi1
END IF
NEXT i
text "Die TRUCKING-YUPPI-HALL ist leer !!"
yuppi1:
IF topscore$(15)<>"MaWe+Amiga" THEN
IF topscore$(15)<>topscore$(1) THEN
text "Zeig´ was du kannst, "+topscore$(15)+" !!"
END IF
END IF
GOSUB maus:GOTO start
route:
IF ko(un,sta)=0 THEN
text "Eine Festlegung der Route ohne Standort ist nicht möglich !!"
FOR i=1 TO 2000:NEXT
GOSUB frei:GOTO start1
END IF
IF an=0 THEN
text "Für eine Fahrt ins Grüne eignet sich eine Kaffeefahrt besser."
text "Sie können ohne Auftrag keine Route festlegen !"
FOR i=1 TO 2000:NEXT i
GOSUB frei:GOTO start1
END IF
IF kfz(un,sta,wa(an))=0 THEN
text "Möchten Sie den Transport mit einer Schubkarre erledigen ?"
text "Erforderlicher LKW ist nicht verfügbar !"
FOR i=1 TO 2000:NEXT i
GOSUB frei:GOTO start1
END IF
IF fako(un,sta,wa(an))=1 THEN
text "Dieser LKW hat in dieser Runde seine Arbeit getan."
FOR i=1 TO 2000:NEXT i
GOSUB frei:GOTO start1
END IF
IF au=0 THEN
text "Es nutzt gar nichts, wenn Sie sich die Aufträge nur ansehen."
text "Sie müssen auch einen Solchen annehmen !!"
FOR i=1 TO 2000:NEXT i
GOSUB frei:GOTO start1
END IF
l=4:GOSUB ladebild:GOSUB frei
GET(0,0)-(640,200),ro%
sero:
li=2:KM=0:lx=stand1%(un,sta):ly=stand2%(un,sta):zug=0
fahrt$(0)=stand$(ko(un,sta)):fahrt(0)=0
landfahrt(0)=lstand%(ko(un,sta))
gefunden=0
COLOR 1,6:settext 29,21," ":settext 29,21,STR$(KM)
COLOR 4,7:settext 1,40,"v: "+start$(an)
settext 1,48,"n: "+ziel$(an)
COLOR 1,6
text "Ihr Standort : "+fahrt$(0)+" in "+land$(landfahrt(0))
route1:
GOSUB maus
IF y>0 AND y<11 THEN
IF x>0 AND x<55 THEN GOTO start
IF x>=55 AND x<97 THEN GOTO driveon
END IF
IF y>11 AND y<25 THEN
IF x>0 AND x<97 THEN
PUT (0,0),ro%,PSET
GOTO sero
END IF
END IF
GOSUB ermittlung
IF gefunden=0 THEN GOTO route1
IF fahrt$(zug)="ZOLL" AND fahrt$(zug-1)="ZOLL" THEN
zug=zug-1
text "Die Höflichkeit gebietet es, durch mindestens eine Stadt dieses"
text "schönen Landes zu fahren !"
GOTO route1
END IF
IF li=2 THEN
GOSUB kilometer
settext 29,21," "
settext 29,21,STR$(KM)
li=1
END IF
IF li=1 THEN li=2:lx=x:ly=y
gefunden=0:GOTO route1
kilometer:
IF lx>x THEN
e1=lx-x
ELSE
e1=x-lx
END IF
IF ly>y THEN
e2=ly-y
ELSE
e2=y-ly
END IF
e1=INT(e1*.65)
e3=INT((e1+e2)*4.4):KM=KM+e3:fahrt(zug)=e3
LINE (lx,ly)-(x,y),1
text STR$(zug)+"# von "+fahrt$(zug-1)+" nach "+fahrt$(zug)+" ("+STR$(e3)+" km ) in "+land$(landfahrt(zug))
RETURN
ermittlung:
von=0
IF POINT(x,y)=1 THEN st=2:GOTO ermittlung1
IF x>200 THEN von=18
IF x>300 THEN von=40
IF x>400 THEN von=58
IF x>500 THEN von=68
st=1
FOR i%=von TO 85
IF x>stadtx%(i%)-5 AND x<stadtx%(i%)+5 AND y>stadty%(i%)-5 AND y<stadty%(i%)+5 THEN
GOTO ermittlung1
END IF
NEXT i%
st=0: gefunden=0
RETURN
ermittlung1:
zug=zug+1
IF zug=9 THEN
text "Eine Weltreise ist bei Neckermann billiger !"
text "Weitere Routenfestlegung nicht möglich !!"
GOTO route1
END IF
gefunden=1
IF st=2 THEN
fahrt$(zug)="ZOLL":landfahrt(zug)=landfahrt(zug-1):RETURN
END IF
fahrt$(zug)=stadt$(i%)
landfahrt(zug)=lkenn%(i%)
RETURN
driveon:
verpro=7:wetter=4
IF runde>2 THEN verpro=2:wetter=1
IF runde>5 THEN verpro=3.5:wetter=2
IF runde>8 THEN verpro=5:wetter=3
IF runde>11 THEN verpro=7:wetter=4
vers=0
abzug=INT(transwert(an)/100*verpro)
WINDOW 4,"Transportversicherung ??",(10,50)-(400,85),0,2
PRINT verpro;" % des Warenwertes = ";abzug;" DM"
PRINT " j/n";:INPUT vers$
IF vers$="j" THEN
PRINT " Die Ladung wird versichert."
vers=1:kap(un)=kap(un)-abzug:jack=jack+abzug
GOTO versi
END IF
PRINT "Sie fahren ohne Versicherung !"
vers=0
versi:
FOR kk=1 TO 1000:NEXT
WINDOW CLOSE 4
l=7:GOSUB ladebild:GOSUB frei
s=0:z=0:sab=0
tank=inh(wa(an)):diesel=0
text "Ladung : "+auf$(an)+" | LKW : "+trans$(an)+" | Wert: "+STR$(transwert(an))
text "Von : "+start$(an)+" nach : "+ziel$(an)+" | Angebot: "+STR$(angebot(an))
LINE (5,80)-(160,160),0,BF
LINE (8,82)-(163,162),1,BF
IF unt>1 THEN
WINDOW 4,"\/\/\/\SABOTAGE/\/\/\/",(400,90)-(600,160),0,2
PRINT "Möchte einer der werten"
PRINT "Mitspieler diese Fahrt"
PRINT "Sabotieren ?? (j/n)"
INPUT sab$
IF sab$<>"j" THEN sab=0:PRINT "Keine Sabotage":GOTO sabend
sabfrag:
CLS
FOR sab=1 TO unt:PRINT "(";sab;") ";nam$(sab):NEXT
PRINT "Wer =>";:INPUT sab1$
sab1=VAL(sab1$):IF sab1<0 OR sab1>unt THEN GOTO sabfrag
IF sab1=0 THEN sab=0:PRINT "Keine Sabotage":GOTO sabend
sab2=INT(angebot(an)/4)
PRINT "Diese Sabotage kostet"
PRINT sab2;" DM"
IF kap(sab1)-sab2<kredit(sab1) THEN
PRINT nam$(sab1)
PRINT "soviel Geld besitzt"
PRINT "du nicht !!"
PRINT "Strafe: 10.000 DM."
kap(sab1)=kap(sab1)-10000:jack=jack+3000
PRINT "Keine Sabotage":sab=0:GOTO sabend
END IF
kap(sab1)=kap(sab1)-sab2:sab=1:jack=jack+INT(sab2/2)
PRINT "OK ";nam$(sab1)
sabend:
WINDOW OUTPUT 2
END IF
IF unt=1 THEN
RANDOMIZE TIMER
sab1=INT(RND*100)
sab2=INT(RND*100)
IF sab2>sab1 THEN sab=1
END IF
saber=0
IF sab=1 THEN
RANDOMIZE TIMER
sab3=INT(RND*100)
sab2=INT(RND*100)
IF sab3>sab2 THEN saber=1
END IF
la=0:ll1=0:kt=0:wett=0
LINE (10,84)-(161,160),la,B
MOUSE OFF
RESTORE katas0
GOSUB fahrtkatas1
vv=0:ll=wa(an)
GOSUB Bewertung
WHILE vv<zug
GOSUB fahrtkatas
IF lkweg>0 THEN
GOSUB sabko
GOTO fahrtend
END IF
RANDOMIZE TIMER
wetka=INT(RND*100)
IF wetka<wetter*10 THEN GOSUB wetter
vv=vv+1
di=INT((fahrt(vv)/100)*ver(wa(an))):diesel=diesel+di
tank=tank-di
dt:
IF tank<=0 THEN
text "* Tanken *"+STR$(diesel)+" l Diesel"
IF die(un,sta,wa(an))>=diesel THEN
die(un,sta,wa(an))=die(un,sta,wa(an))-diesel
tank=tank+diesel:diesel=0:GOTO dt
END IF
IF die(un,sta,wa(an))<=0 THEN
text "Ihr Fahrer besitzt nicht genug Dieselgutscheine, um die nächste"
text "Ortschaft zu erreichen. ** Abschleppkosten : 1000 DM **"
IF s=1 THEN
text "Sie erhalten keine Frachtgebühr !"
END IF
kap(un)=kap(un)-1000:jack=jack+1000
GOTO fahrtend
END IF
END IF
text STR$(vv)+". Ziel : "+fahrt$(vv)+" in "+land$(landfahrt(vv))+" ("+STR$(fahrt(vv))+" km)"
IF fahrt$(vv)="ZOLL" AND s=1 THEN
abzug=INT(transwert(an)/95)
text "*** Zollgebühr :"+STR$(abzug)+" DM ***"
kap(un)=kap(un)-abzug
END IF
IF mot>3 THEN
zuf=INT(RND*100)
IF zuf>50 THEN
abzug=mot*50:kap(un)=kap(un)-abzug
text "= Motorschaden = "+STR$(abzug)+" DM"
END IF
END IF
IF r>4 THEN
zuf=INT(RND*100)
IF zuf<50 THEN
abzug=r*30:kap(un)=kap(un)-abzug
text "> Reifenpanne < "+STR$(abzug)+" DM"
END IF
END IF
IF a9>4 THEN
zuf=INT(RND*100)
IF zuf>30 AND zuf<80 THEN
abzug=a9*40:kap(un)=kap(un)-abzug
text "< Reparaturen > "+STR$(abzug)+" DM"
END IF
END IF
IF fahrt$(vv)=start$(an) THEN
s=1
IF landfahrt(vv)=landfahrt(0) THEN in=0
IF landfahrt(vv)<>landfahrt(0) THEN in=1
END IF
IF fahrt$(vv)=ziel$(an) THEN
z=1
IF landfahrt(vv)=landfahrt(0) THEN ex=0
IF landfahrt(vv)<>landfahrt(0) THEN ex=1
END IF
IF landfahrt(vv)<>landfahrt(vv-1) AND fahrt$(vv-1)<>"ZOLL" THEN
text "Zollvergehen ! Strafe : 10.000 DM"
kap(un)=kap(un)-10000:jack=jack+10000
END IF
FOR ji=1 TO 1500:NEXT ji
RANDOMIZE TIMER
WEND
IF s=1 AND z=1 THEN
text "Ladung wird übergeben."+STR$(angebot(an))+" DM werden Ihrem Konto zugewiesen."
kap(un)=kap(un)+angebot(an)
IF saber=1 THEN kap(un)=kap(un)-angebot(an):RESTORE katas13:GOSUB fahrtkatas1
IF unt=1 AND saber=1 THEN GOSUB frei:jack=jack+INT(angebot(an)/2)
IF unt=1 AND sab=1 AND saber=0 THEN RESTORE katas14:GOSUB fahrtkatas1
IF unt>1 AND saber=1 THEN
GOSUB frei
kap(sab1)=kap(sab1)+INT(angebot(an)/2)
WINDOW OUTPUT 4
PRINT "Der Saboteur erhält"
PRINT INT(angebot(an)/2);" DM"
WINDOW OUTPUT 2
END IF
IF unt>1 AND sab=1 AND saber=0 THEN RESTORE katas14:GOSUB fahrtkatas1
IF in=1 AND ex=1 THEN zu=5:zu$="Auslandsfracht"
IF in=1 AND ex=0 THEN zu=10:zu$="Import"
IF in=0 AND ex=1 THEN zu=15:zu$="Export"
IF in=0 AND ex=0 THEN zu=8:zu$="Inlandsfracht"
zulage=INT((transwert(an)/100)*zu)
IF in=1 AND ex=0 THEN
kap(un)=kap(un)-zulage
text "Abzug wegen Import 10% = "+STR$(zulage)+" DM."
GOTO lentz
END IF
kap(un)=kap(un)+zulage
text "Sie erhalten eine "+zu$+"-Zulage von "+STR$(zu)+"% = "+STR$(zulage)+" DM"
END IF
lentz:
IF s=1 AND z=0 THEN
text "Sie haben die Ladung an eine falsche Adresse geliefert."
text "SIE haften allein für"+STR$(transwert(an))+" DM"
kap(un)=kap(un)-transwert(an)
GOSUB sabko
END IF
IF s=0 AND z=1 THEN
text "Sie sind ohne Fracht gefahren !"
strafe=INT((transwert(an)/100)*10)
text "Strafe : 10 % des Warenwertes von"+STR$(transwert(an))+" DM ="+STR$(strafe)+" DM"
kap(un)=kap(un)-strafe:jack=jack+INT(strafe/10)
GOSUB sabko
END IF
IF s=0 AND z=0 THEN
text "Hoffentlich hatten Sie Spaß an der Rundreise - so ganz ohne Ladung."
strafe=INT((transwert(an)/100)*15)
text "Strafe : 15 % des Warenwertes von"+STR$(transwert(an))+" DM ="+STR$(strafe)+" DM"
kap(un)=kap(un)-strafe:jack=jack+INT(strafe/10)
GOSUB sabko
END IF
fahrtend:
IF lkweg=1 OR lkweg=3 THEN
text "*** KLICK MAUS ***"
GOTO fahrtend1
END IF
IF lkweg=2 THEN kap(un)=kap(un)+angebot(an):fako(un,sta,wa(an))=1:GOTO fahrtend1
r=INT((rueck(wa(an))/100)*ver(wa(an))*dp)
text "Rückfahrtkosten für "+STR$(rueck(wa(an)))+" km = "+STR$(r)+" DM *** KLICK MAUS ***"
kap(un)=kap(un)-r
KM=KM+rueck(wa(an))
stre(un,sta,wa(an))=stre(un,sta,wa(an))+KM
rei(un,sta,wa(an))=rei(un,sta,wa(an))+KM
alter(un,sta,wa(an))=alter(un,sta,wa(an))+INT(KM/tem(wa(an)))
die(un,sta,wa(an))=die(un,sta,wa(an))-diesel
IF die(un,sta,wa(an))<=0 THEN die(un,sta,wa(an))=0
fako(un,sta,wa(an))=1
fahrtendkontrolle:
GOSUB Bewertung
IF mot=5 OR a9=8 THEN
FOR i=1 TO 1000:NEXT
GOSUB weglkw
text "Ihr LKW wird mit sofortiger Wirkung ersatzlos Stillgelegt !"
text "Strafe wegen Verkehrsgefährdung: 5000 DM"
kap(un)=kap(un)-5000:jack=jack+5000
END IF
IF mot=4 THEN
FOR i=1 TO 1000:NEXT
text "Sie sollten alsbald Ihren LKW verkaufen !!!"
text "Verwarnung: 1000 DM"
kap(un)=kap(un)-1000:jack=jack+1000
END IF
IF r>5 THEN
FOR i=1 TO 1000:NEXT
text "Reifen : "+reifzu$(r)
abzug=r*250
text "Verwarnung: "+STR$(abzug)+" DM"
kap(un)=kap(un)-abzug:jack=jack+abzug
END IF
IF a9>5 THEN
FOR i=1 TO 1000:NEXT
text "LKW-Zustand : "+allgem$(a9)
abzug=a9*300
text "Verwarnung: "+STR$(abzug)+" DM"
kap(un)=kap(un)-abzug:jack=jack+abzug
END IF
fahrtend1:
fako(un,sta,wa(an))=1
MOUSE ON
GOSUB maus:text "OK"
IF unt>1 THEN WINDOW CLOSE 4
au=0:an=0:fa=fa+1:kt=0:wett=0:GOTO starta
sabko:
IF saber=1 THEN RESTORE katas15:GOSUB fahrtkatas1
RETURN
losa:
l=9:GOSUB ladebild:GOSUB frei
GET (40,31)-(585,166),ro%
DIM game$(50)
losa1:
y1=5:x1=20:gamezahl=0:lo=1:lau=0
GOSUB maus
IF x>81 AND x<198 AND y>75 AND y<120 THEN
LINE (40,31)-(585,166),3,BF
text "Spiel laden"
losa$="L"
GOSUB gamlo
IF lo=0 AND unt=0 THEN
l=1:GOSUB ladebild
GOTO abfr
END IF
IF gam$="" THEN GOTO losaend
OPEN "I",#1,"trucking.games/"+gam$
INPUT#1,jack
INPUT#1,unt
INPUT#1,un
INPUT#1,runde
INPUT#1,yupp
INPUT#1,fa
INPUT#1,au
INPUT#1,an
INPUT#1,jahr
FOR i=1 TO unt
LINE INPUT#1,nam$(i)
LINE INPUT#1,firma$(i)
INPUT#1,rp(i)
INPUT#1,besitz(i)
INPUT#1,kredit(i)
INPUT#1,kap(i)
INPUT#1,stand0%(i)
INPUT#1,stern(i)
FOR j=1 TO 4
INPUT#1,ko(i,j)
INPUT#1,stand1%(i,j)
INPUT#1,stand2%(i,j)
FOR k=1 TO 4
INPUT#1,fako(i,j,k)
INPUT#1,kfz(i,j,k)
INPUT#1,die(i,j,k)
INPUT#1,stre(i,j,k)
INPUT#1,alter(i,j,k)
INPUT#1,rei(i,j,k)
NEXT k
NEXT j
NEXT i
CLOSE 1
ERASE game$
GOSUB poi
IF au>0 THEN lau=1
sta=1
GOTO start
END IF
IF x>248 AND x<358 AND y>75 AND y<120 THEN
LINE (40,31)-(585,166),3,BF
text "Spiel speichern"
losa$="S"
GOSUB gamlo
IF gam$="" THEN GOTO losaend
IF gefunden=0 THEN
OPEN "O",#1,"trucking.games/games"
FOR kk=1 TO lo
PRINT#1,game$(kk)
NEXT kk
CLOSE 1
END IF
OPEN "O",#1,"trucking.games/"+gam$
PRINT#1,jack
PRINT#1,unt
PRINT#1,un
PRINT#1,runde
PRINT#1,yupp
PRINT#1,fa
PRINT#1,au
PRINT#1,an
PRINT#1,jahr
FOR i=1 TO unt
PRINT#1,nam$(i)
PRINT#1,firma$(i)
PRINT#1,rp(i)
PRINT#1,besitz(i)
PRINT#1,kredit(i)
PRINT#1,kap(i)
PRINT#1,stand0%(i)
PRINT#1,stern(i)
FOR j=1 TO 4
PRINT#1,ko(i,j)
PRINT#1,stand1%(i,j)
PRINT#1,stand2%(i,j)
FOR k=1 TO 4
PRINT#1,fako(i,j,k)
PRINT#1,kfz(i,j,k)
PRINT#1,die(i,j,k)
PRINT#1,stre(i,j,k)
PRINT#1,alter(i,j,k)
PRINT#1,rei(i,j,k)
NEXT k
NEXT j
NEXT i
CLOSE 1
ERASE game$
GOTO start
END IF
IF x>428 AND x<538 AND y>75 AND y<120 THEN
ERASE game$
GOTO start
END IF
text "Macht klicken spaß ?"
GOTO losa1
losaend:
PUT(40,31),ro%,PSET
GOSUB maus
CLOSE 1
GOTO losa1
gamlo:
lo=0:gam$=""
OPEN "I",#1,"trucking.games/games"
COLOR 0,3
WHILE NOT EOF(1)
lo=lo+1
LINE INPUT#1,game$(lo)
WEND
CLOSE 1
IF game$(1)="empty" THEN lo=0
IF lo=0 AND unt=0 THEN GOTO gamzei3
IF lo=0 THEN
LOCATE 5,10:PRINT "Kein Spiel auf Disk"
GOTO gamzei1
END IF
LOCATE 5,10:PRINT lo;
IF lo=1 THEN PRINT " Spiel";
IF lo>1 THEN PRINT " Spiele";
PRINT " auf Disk"
lo1=1:FOR kk=1 TO 500:NEXT
gamzei:
IF lo=0 THEN GOTO gamzei1
IF lo1<lo THEN lo1=1
IF lo1>lo THEN lo1=lo-4:GOTO gamzei
LINE (40,31)-(585,166),3,BF
y1=5:x1=15
lo2=lo1+9
IF lo2>lo THEN lo2=lo
FOR kk=lo1 TO lo2
LOCATE y1,x1:PRINT game$(kk)
y1=y1+1
NEXT kk
gamzei1:
LINE (50,140)-(250,155),0,BF
LOCATE 18,60:PRINT "/\ up"
LOCATE 19,60:PRINT "|| zurück"
LOCATE 20,60:PRINT "\/ down"
gamzei2:
GOSUB maus
IF x>471 AND x<488 AND y>136 AND y<143 THEN lo1=lo1-10:GOTO gamzei
IF x>471 AND x<488 AND y>143 AND y<151 THEN PUT(40,31),ro%,PSET:GOTO gamzei3
IF x>471 AND x<488 AND y>151 AND y<159 THEN lo1=lo1+10:GOTO gamzei
IF x>50 AND x<250 AND y>140 AND y<155 THEN
IF losa$="L" AND lo=0 THEN
text "Kein Spiel auf Disk !"
gam$=""
GOTO gamzei3
END IF
IF losa$="L" THEN wi$="load"
IF losa$="S" THEN wi$="save"
gamzeix:
WINDOW 4,"Trucking-Game to "+wi$,(50,140)-(350,155),0,2
COLOR 1,0
INPUT gam$
WINDOW CLOSE 4
COLOR 0,3
gefunden=0
IF lo=0 AND losa$="S" THEN lo=1:game$(1)=gam$:GOTO gamzei3
FOR kk=1 TO lo
IF gam$=game$(kk) THEN gefunden=1
NEXT kk
IF losa$="L" AND gefunden=0 THEN
text "Dieses Spiel existiert nicht !"
gam$=""
GOTO gamzei3
END IF
IF losa$="L" AND gefunden=1 THEN
text gam$+" wird geladen."
GOTO gamzei3
END IF
IF losa$="S" AND gefunden=0 THEN
lo=lo+1
IF lo>50 THEN
BEEP
text "Keine weiteren Einträge möglich."
text "Wähle ein bereits existierendes Spiel."
lo=lo-1:gam$=""
GOTO gamzeix
END IF
game$(lo)=gam$
text gam$+" wird gespeichert."
GOTO gamzei3
END IF
IF losa$="S" AND gefunden=1 THEN
text gam$+" wird gespeichert."
GOTO gamzei3
END IF
END IF
GOTO gamzei2
gamzei3:
PUT(40,31),ro%,PSET
RETURN
ladebild:
f$="trucking.set/"+bild$(l)+CHR$(0)
fHandle&=xOpen&(SADD(f$),1005)
IF fHandle&=0 THEN
fehler$="Bild fehlt !"
GOTO fehler
END IF
fBMHD=0
fCMAP=0
fCAMG=0
fCCRT=0
fABIT=0
ClearPublic&=65537&
mybufsize&=360
mybuf&=AllocMem&(mybufsize&,ClearPublic&)
inbuf&=mybuf&
cbuf&=mybuf&+120
ctab&=mybuf&+240
rLen&=xRead&(fHandle&,inbuf&,12)
ladebilda:
rLen&=xRead&(fHandle&,inbuf&,8)
icLen&=PEEKL(inbuf&+4)
tt$=""
FOR kk=0 TO 3
tt%=PEEK(inbuf&+kk)
tt$=tt$+CHR$(tt%)
NEXT kk
IF tt$="BMHD" THEN
fBMHD=1
rLen&=xRead&(fHandle&,inbuf&,icLen&)
GOSUB GetScrAddrs
CALL LoadRGB4&(sViewPort&,ctab&,8)
ELSEIF tt$="CMAP" THEN
fCMAP=1
rLen&=xRead&(fHandle&,cbuf&,icLen&)
FOR kk=0 TO 7
red%=PEEK(cbuf&+(kk*3))
gre%=PEEK(cbuf&+(kk*3)+1)
blu%=PEEK(cbuf&+(kk*3)+2)
regTemp%=(red%*16)+(gre%)+(blu%/16)
POKEW(ctab&+(2*kk)),regTemp%
NEXT kk
ELSEIF tt$="CAMG" THEN
fCAMG=1
rLen&=xRead&(fHandle&,inbuf&,icLen&)
camgModes&=PEEKL(inbuf&)
ELSEIF tt$="ABIT" THEN
fABIT=1
plSize&=(640/8)*200
FOR pp=0 TO 2
rLen&=xRead&(fHandle&,bPlane&(pp),plSize&)
NEXT pp
ELSE
FOR kk=1 TO icLen&
rLen&=xRead&(fHandle&,inbuf&,1)
NEXT kk
IF (icLen& OR 1)=icLen& THEN
rLen&=xRead&(fHandle&,inbuf&,1)
END IF
END IF
IF fBMHD AND fCMAP AND fABIT =1 THEN
GOTO geladen
END IF
GOTO ladebilda
geladen:
CALL LoadRGB4&(sViewPort&,ctab&,nColors%)
CALL xClose&(fHandle&)
RETURN
GetScrAddrs:
sWindow&=WINDOW(7)
sScreen&=PEEKL(sWindow&+46)
sViewPort&=sScreen&+44
sRastPort&=sScreen&+84
sColorMap&=PEEKL(sViewPort&+4)
colorTab&=PEEKL(sColorMap&+4)
sBitMap&=PEEKL(sRastPort&+4)
scrWidth%=PEEKW(sScreen&+12)
scrHeight%=PEEKW(sScreen&+14)
scrDepth%=PEEK(sBitMap&+5)
nColors%=2^scrDepth%
FOR kk=0 TO scrDepth%-1
bPlane&(kk)=PEEKL(sBitMap&+8+(kk*4))
NEXT kk
RETURN
bildname:
DATA titel,handel,command,route,standorte,yuppi,fahrt,bye,ls
lkwpreise:
DATA Midi-Truck,36500,Street-Master,85000,Big-Mac,196734,Uni-Trans,235500
DATA 65,12,230,120,541,150,22,810,120,681,250,65,3850,130,384,250,78,4400,110,320
DATA "sehr gut","gut","befriedigend","ausreichend","mangelhaft","riskant"
DATA "baldige Stillegung erforderlich","TÜV-Schock"
DATA "sehr gut","gut","befriedigend","ausreichend","angenagtes Profil"
DATA "kaum Profil","glatt wie ein Aal","schrecklich"
standko:
DATA 1,320,3,280,10,300,15,400,20,600,21,600,24,350,26,350
DATA 27,350,30,400,36,450,37,400,41,400,44,600,47,600,49,390,55,200
DATA 58,250,59,300,61,150
DATA 63,300,66,200,67,50,68,100,70,250,72,100
DATA 73,250,75,150,76,150,77,250,79,100,80,100,82,150,83,100,85,250
land:
DATA Frankreich,Belgien,Luxemburg,Niederlande,BRD,Schweiz
DATA Österreich,DDR,Ungarn,Tschechoslowakei,Polen
monat:
DATA "Januar","Februar","März","April","Mai","Juni","Juli"
DATA "August","September","Oktober","November","Dezember"
maus:
WHILE MOUSE(0)<=0
WEND
x=MOUSE(3):y=MOUSE(4)
RETURN
SUB text (text$) STATIC
WINDOW OUTPUT 3
COLOR 1,0
PRINT text$
WINDOW OUTPUT 2
END SUB
frei:
WINDOW OUTPUT 3:CLS:WINDOW OUTPUT 2:RETURN
SUB settext (xxx%,yyy%,ttt$) STATIC
e&=Move&(WINDOW(8),xxx%,yyy%)
PRINT ttt$
END SUB
dipr:
RANDOMIZE TIMER
dp=(INT(RND*(120)+55))/100
RETURN
alt:
FOR y%=1 TO 4
FOR i%=1 TO 4
IF kfz(un,y%,i%)=1 THEN
alter(un,y%,i%)=alter(un,y%,i%)+8
fako(un,y%,i%)=0
END IF
NEXT i%
NEXT y%
RETURN
Bewertung:
be=rei(un,sta,ll)
IF be<5000 THEN r=1
IF be>5000 THEN r=2
IF be>8000 THEN r=3
IF be>10500 THEN r=4
IF be>13000 THEN r=5
IF be>15500 THEN r=6
IF be>17000 THEN r=7
IF be>19999 THEN r=8
be=alter(un,sta,ll)
IF be<100 THEN a9=1
IF be>100 THEN a9=2
IF be>250 THEN a9=3
IF be>550 THEN a9=4
IF be>700 THEN a9=5
IF be>850 THEN a9=6
IF be>1000 THEN a9=7
IF be>1500 THEN a9=8
be=stre(un,sta,ll)
mot=0
IF be>2500 THEN mot=1
IF be>12500 THEN mot=2
IF be>20000 THEN mot=3
IF be>37500& THEN mot=4
IF be>50000& THEN mot=5
RETURN
box:
LINE (505,b1%)-(615,b2%),6,B
b1%=sta*9:b2%=b1%+10
LINE (505,b1%)-(615,b2%),5,B
RETURN
box1:
LINE (353,b3%)-(615,b4%),6,B
b3%=29+(32*an):b4%=55+(32*an)
LINE (353,b3%)-(615,b4%),0,B
GOTO start1
auftrag:
MOUSE OFF
RANDOMIZE TIMER
FOR i%=1 TO 4
u=INT(RND*41)
auf$(i%)=waren$(u)
e=tr(u)
IF e<5 THEN trans$(i%)=lkw$(e):transwert(i%)=pr(u):wa(i%)=e:GOTO auf
IF e=5 THEN zu=INT(RND*3+1)
IF e=6 THEN zu=INT(RND*4+1)
IF e=7 THEN zu=INT(RND*3+2)
IF e=8 THEN zu=INT(RND*2+2)
wa(i%)=zu:trans$(i%)=lkw$(zu)
IF e>4 THEN
IF zu=1 THEN transwert(i%)=pr(u)*2.5
IF zu=2 THEN transwert(i%)=pr(u)*7.5
IF zu=3 THEN transwert(i%)=pr(u)*25
IF zu=4 THEN transwert(i%)=pr(u)*40
END IF
auf:
angebot(i%)=(INT(transwert(i%)/100)*50)+INT((RND*5000)+1)
NEXT i%
FOR i%=1 TO 4
u=INT((RND*85))
u1=u
start$(i%)=stadt$(u)
lx=stadtx%(u):ly=stadty%(u)
auftrag1:
u=INT((RND*85))
ziel$(i%)=stadt$(u)
IF ziel$(i%)=start$(i%) THEN GOTO auftrag1
x=stadtx%(u):y=stadty%(u)
IF lx>x THEN
e1=lx-x
ELSE
e1=x-lx
END IF
IF ly>y THEN
e2=ly-y
ELSE
e2=y-ly
END IF
e1=INT(e1*.65)
rueck(i%)=INT((e1+e2)*4.4)
NEXT i%
auftrag2:
IF lau=1 THEN lau=0:GOTO auftrag
LINE (353,60)-(615,185),6,BF
COLOR 1,6
settext 360,69,auf$(1)+" für "+trans$(1)
settext 360,77,"von "+start$(1)+" nach "+ziel$(1)
settext 360,85,"W :"+STR$(transwert(1))+" A :"+STR$(angebot(1))
settext 360,93,"----------------------------"
settext 360,101,auf$(2)+" für "+trans$(2)
settext 360,109,"von "+start$(2)+" nach "+ziel$(2)
settext 360,117,"W :"+STR$(transwert(2))+" A :"+STR$(angebot(2))
settext 360,125,"---------------------------"
settext 360,133,auf$(3)+" für "+trans$(3)
settext 360,141,"von "+start$(3)+" nach "+ziel$(3)
settext 360,149,"W :"+STR$(transwert(3))+" A :"+STR$(angebot(3))
settext 360,157,"---------------------------"
settext 360,165,auf$(4)+" für "+trans$(4)
settext 360,173,"von "+start$(4)+" nach "+ziel$(4)
settext 360,181,"W :"+STR$(transwert(4))+" A :"+STR$(angebot(4))
text "Wähle Auftrag"
b3%=29+(32*an)
b4%=55+(32*an)
IF an=0 THEN b3%=61:b4%=87
IF an>0 THEN
LINE (353,b3%)-(615,b4%),0,B
END IF
MOUSE ON
RETURN
ende:
GOSUB frei
text "Klick < QUIT > zum Spielende"
text "Klick < WEITER > zum Weiterspielen"
text "Klick < AUFTRÄGE > zum Neubeginn"
ende1:
GOSUB maus
IF x>265 AND x<314 AND y>93 AND y<114 THEN
text "OK - Bis zum nächsten Mal !"
LIBRARY CLOSE
FOR i=1 TO 5000:NEXT
SYSTEM
END IF
IF x>147 AND x<197 AND y>93 AND y<114 THEN
text "Auf zum Neubeginn !"
neuspiel=1
GOTO neuspiel
END IF
IF x>24 AND x<74 AND y>68 AND y<89 THEN
text "Weiter geht´s !"
GOTO start1
END IF
GOTO ende1
katas0:
DATA "#################"
DATA "# #"
DATA "# #"
DATA "# Auf geht´s #"
DATA "# #"
DATA "# #"
DATA "# #"
DATA "#################"
katas1:
DATA "Ihr Fahrer fuhr "
DATA "volltrunken gegen"
DATA "einen Baum. Dabei"
DATA "ging die Ladung "
DATA "über Bord. "
DATA "SIE haften für "
DATA "die Ladung ! "
DATA "-----------------"
katas2:
DATA "Ihr Fahrer sah am"
DATA "Straßenrand eine "
DATA "schöne Anhalterin"
DATA "stehen. Mit ihr "
DATA "fuhr er in sein "
DATA "Glück. IHR Pech :"
DATA "LKW futsch "
DATA "Ladung futsch "
katas3:
DATA "Ihr Fahrer hat "
DATA "100.000 DM auf "
DATA "der Straße ge- "
DATA "funden. Daraufhin"
DATA "verschwand er und"
DATA "ließ LKW samt La-"
DATA "dung stehen. Er- "
DATA "satzmann: 1000 DM"
katas4:
DATA "Unverschuldet "
DATA "wurde Ihr LKW in "
DATA "einen Unfall ver-"
DATA "wickelt. "
DATA "Totalschaden !! "
DATA "Die Versicherung "
DATA "zahlt neuen LKW "
DATA "und Frachtrate !!"
katas5:
DATA "An einem Truck - "
DATA "Stop wurde Ihr "
DATA "Fahrer in ein Ge-"
DATA "spräch verwickelt"
DATA "Die Ladung wurde "
DATA "gestohlen, für "
DATA "die SIE jetzt "
DATA "haften !!! "
katas6:
DATA "In einem Akt "
DATA "übergroßer Nächs-"
DATA "tenliebe verkauft"
DATA "Ihr Fahrer die "
DATA "Ladung für den "
DATA "halben Preis. SIE"
DATA "haften für den "
DATA "Warenwert !! "
katas7:
DATA "Ihr Fahrer spielt"
DATA "Monopoli mit ge- "
DATA "fälschtem Spiel- "
DATA "geld. Dafüt geht "
DATA "er 14 Tage ins "
DATA "Gefängnis. Ihr "
DATA "LKW altert der- "
DATA "weil vor sich hin"
katas8:
DATA "Sehr holprige "
DATA "Strecke. Ihrem "
DATA "Fahrer wird lau- "
DATA "fend schlecht und"
DATA "den Reifen Ihres "
DATA "LKW´s bekommt der"
DATA "Weg auch nicht !!"
DATA "-----------------"
katas9:
DATA "-----------------"
DATA "LACKSCHADEN !! "
DATA "Ihr LKW muß neu "
DATA "lackiert werden. "
DATA "Er trocknet drei "
DATA "lange Tage vor "
DATA "sich hin . "
DATA "-----------------"
katas10:
DATA "GRATULATION !! "
DATA "Ihr Fahrer war "
DATA "der schnellste "
DATA "auf der Autobahn!"
DATA "Die Radaranlage "
DATA "wurde zerstört. "
DATA "Sie zahlen Strafe"
DATA "-> DM: "
katas11:
DATA "Ihr Fahrer fand "
DATA "in einem Papier- "
DATA "korb 50.000 DM !!"
DATA "Das Geld teilt er"
DATA "mit Ihnen, weil "
DATA "Sie ihm schon Mo-"
DATA "natelang mehr "
DATA "Geld versprachen "
katas12:
DATA "Lieber Spediteur!"
DATA "Die Autobahn ist "
DATA "kein Tanzparkett!"
DATA "Sagen Sie das "
DATA "Ihrem Fahrer und "
DATA "überweisen die "
DATA "Strafe !! "
DATA "-> 436 DM "
katas13:
DATA " SABOTAGE "
DATA "Durch geschickte "
DATA "manipulation der "
DATA "EDV-Anlage Ihrer "
DATA "Bank erhalten Sie"
DATA "NICHTS ! Der "
DATA "Saboteur erhält "
DATA "1/2 Frachtrate "
katas14:
DATA "+++++++++++++++++"
DATA "An den Saboteur. "
DATA "Sabotage nicht "
DATA "geglückt - STOP -"
DATA "Zahlen müssen Sie"
DATA "trotzdem - STOP -"
DATA "Vielen Dank. "
DATA "+++++++++++++++++"
katas15:
DATA "+++++++++++++++++"
DATA" Sabotage wurde "
DATA "nicht durchge- "
DATA "führt - STOP - "
DATA "Geld wird einbe- "
DATA "halten - STOP - "
DATA "Dankeschön. "
DATA "+++++++++++++++++"
nichtver:
DATA "-----------------"
DATA "- Ihre Ladung -"
DATA "- ist leider -"
DATA "- nicht gegen -"
DATA "- Schäden aller -"
DATA "- Art -"
DATA "- Versichert -"
DATA "-----------------"
dochver:
DATA "*****************"
DATA "* *"
DATA "* Ihre Ladung *"
DATA "* ist gegen *"
DATA "* Schäden *"
DATA "* Versichert !! *"
DATA "* *"
DATA "*****************"
winterkatas:
DATA "................."
DATA ". Glatteis und ."
DATA ". Schnee !!!! ."
DATA ". Ihr Fahrer muß."
DATA ". Schneeketten ."
DATA ". kaufen. ."
DATA ". Preis: 1500 DM."
DATA "................."
winterkatas1:
DATA ". Auf einer ."
DATA ". Eisbedeckten ."
DATA ". Straße gerät ."
DATA ". Ihr LKW ins ."
DATA ". schleudern !! ."
DATA ". Kosten der ."
DATA ". Reparatur : ."
DATA ". "
sommerkatas:
DATA " /\/\/\/\/\/\/\/\"
DATA "/ Es ist sehr /"
DATA "\ heiß auf der \"
DATA "/ Autobahn !!! /"
DATA "\ Ihr Fahrer \"
DATA "/ trinkt viel ! /"
DATA "\ Kosten: 500 DM\"
DATA " \/\/\/\/\/\/\/\/"
herbstkatas:
DATA "<><><><><><><><><"
DATA "< Die Blätter <"
DATA "< fallen, Ihr <"
DATA "< Fahrer ist <"
DATA "< sehr müde. Er <"
DATA "< schläft einen <"
DATA "< ganzen Tag ! <"
DATA "<><><><><><><><><"
fruhkatas:
DATA "[][][][][][][][]["
DATA "] Der Frühling "
DATA "] ist da und Ihr "
DATA "] Fahrer ist gut "
DATA "] gelaunt. Er "
DATA "] verschenkt "
DATA "] seine Diesel- "
DATA "] gutscheine !! "
unver:
text "Heute Ruhetag !"
text "Diese Auskunft ist Kostenpflichtig."
text "Es werden Ihnen 50 DM in Rechnung gestellt !"
kap(un)=kap(un)-50:jack=jack+50
zuf1=1:COLOR 3,3
settext 101,127," "
COLOR 1,3:settext 101,127,STR$(kap(un))
FOR i=1 TO 3000:NEXT i:GOSUB frei
GOTO start1
noauftrag:
COLOR 0,6
settext 375,15,"------------"
settext 375,23,"- Keine -"
settext 375,31,"- weiteren -"
settext 375,39,"- Aufträge -"
settext 375,47,"------------"
text "Wähle > WEITER <, oder nimm einen Auftrag an !"
GOTO start1
truckinghigh:
OPEN "I",#1,"trucking.high/scores"
FOR i%=1 TO 15
LINE INPUT#1,topscore$(i%)
INPUT#1,topscore(i%)
NEXT i%:CLOSE 1
RETURN
highcontrol:
text "Topscore-Ermittlung nach 12 Runden"
check=un
FOR un=1 TO unt
GOSUB poi
NEXT un
un=check
FOR u=1 TO unt
FOR ih=1 TO 15
IF poi(u)>topscore(ih) THEN
FOR uu=15 TO ih STEP-1
topscore(uu)=topscore(uu-1)
topscore$(uu)=topscore$(uu-1)
NEXT uu
topscore(ih)=poi(u)
topscore$(ih)=nam$(u)
GOTO highcontrol1
END IF
NEXT ih
highcontrol1:
NEXT u
OPEN "O",#1,"trucking.high/scores"
FOR i%=1 TO 15
PRINT#1,topscore$(i%)
PRINT#1,topscore(i%)
NEXT i%:CLOSE 1
RETURN
poi:
poi(un)=0
poi(un)=stern(un)*1500
IF kap(un)>0 THEN
poi(un)=poi(un)+INT(kap(un)/100)
END IF
IF stand(un)>0 THEN
poi(un)=poi(un)+stand(un)*2000
END IF
RETURN
lkwcheck:
GOSUB Bewertung
LINE (353,60)-(615,185),6,BF
COLOR 1,6
settext 360,69,"Info LKW : "+lkw$(ll)
settext 360,77,"Tankinhalt : "+STR$(inh(ll))
settext 360,85,"Verbrauch : "+STR$(ver(ll))
settext 360,93,"Abgaben DM : "+STR$(ab(ll))
settext 360,101,"KM/h : "+STR$(tem(ll))
settext 360,109,"Radius KM : "+STR$(ra(ll))
settext 360,117,"Diesel l : "+STR$(die(un,sta,ll))
reichweite=INT(((die(un,sta,ll)/ver(ll))*100))
settext 360,125," für KM : "+STR$(reichweite)
settext 360,133,"-------------------------"
settext 360,141,"Beurteilung TÜV :"
settext 360,149,allgem$(a9)
settext 360,157,"Beurteilung Reifen :"
settext 360,165,reifzu$(r)
settext 360,173,"** REIFEN **** CHECK-UP **"
rewe=ll*300+INT(RND*ll+300)
check=INT(lkwpreis(ll)/100)+alter(un,sta,ll)
settext 360,181," "+STR$(rewe)+" DM "+STR$(check)+" DM"
LINE (362,174)-(454,183),3,B:LINE (454,174)-(566,183),3,B
IF mot=4 OR a9>6 THEN
text "LKW wird bald Stillgelegt ! Sehr hohe Kilometerleistung !!"
END IF
IF mot=5 OR a9=8 THEN
text "LKW wird mit sofortiger Wirkung ersatzlos Stillgelegt !!"
text "Strafe wegen Verkehrsgefährdung: 5000 DM"
kap(un)=kap(un)-5000
fako(un,sta,ll)=0:kfz(un,sta,ll)=0
rp(un)=rp(un)-ab(ll)
die(un,sta,ll)=0:alter(un,sta,ll)=0:stre(un,sta,ll)=0
rei(un,sta,ll)=0:besitz(un)=besitz(un)-1
stern(un)=stern(un)-ll
END IF
text "KLICK MAUS im Info-Feld"
infoab:
GOSUB maus
IF x>353 AND x<615 AND y>60 AND y<185 THEN
IF x>362 AND x<454 AND y>175 AND y<183 THEN
kap(un)=kap(un)-rewe:jack=jack+rewe
COLOR 3,3:settext 101,127," "
COLOR 1,3:settext 101,127,STR$(kap(un))
rei(un,sta,ll)=0
GOTO lkwcheck
END IF
IF x>454 AND x<566 AND y>175 AND y<183 THEN
kap(un)=kap(un)-check:jack=jack+check
COLOR 3,3:settext 101,127," "
COLOR 1,3:settext 101,127,STR$(kap(un))
alter(un,sta,ll)=0
GOTO lkwcheck
END IF
IF au>0 THEN
GOSUB auftrag2
ELSE
LINE (353,60)-(615,185),6,BF
END IF
GOSUB frei
GOTO start1
END IF
GOTO infoab
spielercheck:
check=un
LINE (353,60)-(615,185),6,BF
COLOR 1,6
un=1:GOSUB poi
settext 360,69,nam$(un)+" Punkte:"+STR$(poi(un))
settext 360,77,"Kapital:"+STR$(kap(un))+" DM"
settext 360,85,"LKW´s:"+STR$(besitz(un))+" Standorte:"+STR$(stand0%(un))
IF unt>1 THEN
COLOR 0,6
un=2:GOSUB poi
settext 360,93,nam$(un)+" Punkte:"+STR$(poi(un))
settext 360,101,"Kapital:"+STR$(kap(un))+" DM"
settext 360,109,"LKW´s:"+STR$(besitz(un))+" Standorte:"+STR$(stand0%(un))
END IF
IF unt>2 THEN
COLOR 1,6
un=3:GOSUB poi
settext 360,117,nam$(un)+" Punkte:"+STR$(poi(un))
settext 360,125,"Kapital:"+STR$(kap(un))+" DM"
settext 360,133,"LKW´s:"+STR$(besitz(un))+" Standorte:"+STR$(stand0%(un))
END IF
IF unt>3 THEN
COLOR 0,6
un=4:GOSUB poi
settext 360,141,nam$(un)+" Punkte:"+STR$(poi(un))
settext 360,149,"Kapital:"+STR$(kap(un))+" DM"
settext 360,157,"LKW´s:"+STR$(besitz(un))+" Standorte:"+STR$(stand0%(un))
END IF
IF unt>4 THEN
COLOR 1,6
un=5:GOSUB poi
settext 360,165,nam$(un)+" Punkte:"+STR$(poi(un))
settext 360,173,"Kapital:"+STR$(kap(un))+" DM"
settext 360,181,"LKW´s:"+STR$(besitz(un))+" Standorte:"+STR$(stand(un))
END IF
text "KLICK MAUS IM INFO-FELD"
un=check
spielerab:
GOSUB maus
IF x>353 AND x<615 AND y>60 AND y<185 THEN
IF au>0 THEN
GOSUB auftrag2
ELSE
LINE (353,60)-(615,185),6,BF
END IF
GOSUB frei
GOTO start1
END IF
GOTO spielerab
fahrtkatas:
lkweg=0:wett=0
RANDOMIZE TIMER
kt=INT(RND*100+1)
IF kt>10 THEN RETURN
IF s=1 THEN kt=INT(RND*12+1)
IF s=0 THEN kt=INT(RND*6+6)
IF kt=1 THEN RESTORE katas1
IF kt=2 THEN GOSUB weglkw:lkweg=1:RESTORE katas2
IF kt=3 THEN kap(un)=kap(un)-1000:jack=jack+1000:RESTORE katas3
IF kt=4 THEN GOSUB kommlkw:lkweg=2:RESTORE katas4
IF kt=5 THEN RESTORE katas5
IF kt=6 THEN RESTORE katas6
IF kt=7 THEN alter(un,sta,wa(an))=alter(un,sta,wa(an))+112:RESTORE katas7
IF kt=8 THEN rei(un,sta,wa(an))=rei(un,sta,wa(an))+INT(RND*500)+100:RESTORE katas8
IF kt=9 THEN alter(un,sta,wa(an))=alter(un,sta,wa(an))+24:RESTORE katas9
IF kt=10 THEN abzug=INT(RND*500)+200:kap(un)=kap(un)-abzug:jack=jack+abzug:RESTORE katas10
IF kt=11 THEN kap(un)=kap(un)+25000:RESTORE katas11
IF kt=12 THEN kap(un)=kap(un)-436:jack=jack+436:RESTORE katas12
wett=0
GOTO fahrtkatas1
wetter:
wett=0:kt=0
IF wetter=4 THEN
wett=INT(RND*10+1)
IF wett<5 THEN kap(un)=kap(un)-1500:jack=jack+1500:RESTORE winterkatas
IF wett>4 THEN
wette=INT(RND*5000+5000)
kap(un)=kap(un)-wette:jack=jack+wette:RESTORE winterkatas1
END IF
END IF
IF wetter=2 THEN kap(un)=kap(un)-500:jack=jack+500:RESTORE sommerkatas
IF wetter=3 THEN alter(un,sta,wa(an))=alter(un,sta,wa(an))+8:RESTORE herbstkatas
IF wetter=1 THEN die(un,sta,wa(an))=0:fako(un,sta,wa(an))=1:RESTORE fruhkatas
fahrtkatas1:
BEEP
LINE (8,82)-(163,162),1,BF
LINE (10,84)-(161,160),la,B
FOR k=1 TO 8
READ katas$(k)
NEXT k
COLOR la,1
xs%=15
FOR i=1 TO 8:ys%=92+(i*8)
e&=Move&(WINDOW(8),xs%,ys%)
IF kt=10 AND i=8 THEN katas$(i)=katas$(i)+STR$(abzug)
IF wett>4 AND i=8 THEN katas$(i)=katas$(i)+STR$(wette)
PRINT katas$(i)
NEXT i
FOR i=1 TO 1000:NEXT
IF kt=1 OR kt=2 OR kt=5 OR kt=6 THEN
lkweg=3:kt=0
FOR k=1 TO 1000:NEXT
IF vers=0 THEN
RESTORE nichtver
kap(un)=kap(un)-transwert(an)
GOTO fahrtkatas1
END IF
RESTORE dochver
GOTO fahrtkatas1
END IF
RETURN
weglkw:
fako(un,sta,wa(an))=0:kfz(un,sta,wa(an))=0
rp(un)=rp(un)-ab(wa(an))
die(un,sta,wa(an))=0:alter(un,sta,wa(an))=0:stre(un,sta,wa(an))=0
rei(un,sta,wa(an))=0:besitz(un)=besitz(un)-1
stern(un)=stern(un)-wa(an)
RETURN
kommlkw:
fako(un,sta,wa(an))=0
alter(un,sta,wa(an))=0:stre(un,sta,wa(an))=0
rei(un,sta,wa(an))=0
RETURN
rennen:
LINE (0,0)-(640,200),1,BF
FOR kk=15 TO 180 STEP 15
LINE (0,kk)-(640,kk),0
NEXT
LINE(0,91)-(640,91),2
LINE(0,92)-(640,92),3
COLOR 0,1
x1%=10:amiga=unt+1:nam$(amiga)="Amiga"
FOR i=1 TO amiga:y1%=-5+(i*15)
e&=Move&(WINDOW(8),x1%,y1%)
PRINT nam$(i)
NEXT
FOR i=1 TO amiga:y1%=85+(i*15)
e&=Move&(WINDOW(8),x1%,y1%)
PRINT nam$(i)
NEXT
LOCATE 24,1:PRINT "Das Trucking-Rennen ! Der Preis :";jack;" DM";
lkwx=20:lkwy=5
FOR lkw=5 TO 10
OBJECT.X lkw,lkwx
OBJECT.Y lkw,lkwy
OBJECT.ON lkw
lkwy=lkwy+15
NEXT
lkwy=5:FOR lkw=5 TO 10:drix(lkw)=20:driy(lkw)=lkwy:lkwy=lkwy+15:wkl(lkw)=1:NEXT
text "KLICK MAUS zum START"
GOSUB maus
text "Peng"
RANDOMIZE TIMER
rennsta:
dri=INT(RND*amiga+5)
drix(dri)=drix(dri)+8
IF drix(dri)>620 THEN drix(dri)=20:driy(dri)=driy(dri)+90:wkl(dri)=2
OBJECT.X dri,drix(dri)
OBJECT.Y dri,driy(dri)
IF drix(dri)>595 AND wkl(dri)=2 THEN GOTO rennend
GOTO rennsta
rennend:
dri=dri-4
text "Gewinner ist "+nam$(dri)
IF dri<amiga THEN kap(dri)=kap(dri)+jack
text "KLICK MAUS"
renn=INT(RND*40000&)+80000&
jack=0
GOSUB maus
GOSUB frei
OBJECT.OFF
PUT(0,0),ro%,PSET
GOTO start2
sonderinfo:
GOSUB frei
LINE (0,0)-(640,200),1,BF
COLOR 0,1
LOCATE 5,20:PRINT"*** Es Weihnachtet ***"
LOCATE 7,1
FOR wei=1 TO unt
RANDOMIZE TIMER
fahrer=besitz(wei)*2:weige=INT(RND*500)+1000:weigeza=fahrer*weige
PRINT nam$(wei);TAB(20);"beschäftigt ";fahrer;"Fahrer."
PRINT TAB(20);"Weihnachtsgeld pro Fahrer: ";weige;" DM = ";weigeza;" DM"
kap(wei)=kap(wei)-weigeza
NEXT wei
text "KLICK MAUS"
GOSUB maus
GOSUB frei
PUT(0,0),ro%,PSET
RETURN
sonderinfo1:
GOSUB frei
LINE (0,0)-(640,200),1,BF
COLOR 0,1
LOCATE 5,20:PRINT"### Urlaubsgeld wird fällig ###"
LOCATE 7,1
FOR wei=1 TO unt
RANDOMIZE TIMER
fahrer=besitz(wei)*2:weige=INT(RND*200)+100:weigeza=fahrer*weige
PRINT nam$(wei);TAB(20);"beschäftigt ";fahrer;"Fahrer."
PRINT TAB(20);"Urlaubsgeld pro Fahrer: ";weige;" DM = ";weigeza;" DM"
kap(wei)=kap(wei)-weigeza
NEXT wei
text "KLICK MAUS"
GOSUB maus
GOSUB frei
PUT(0,0),ro%,PSET
RETURN
sonderinfo2:
IF besitz(un)=0 THEN GOTO hohnsen
RANDOMIZE TIMER
soza=INT(RND*100)+1
IF soza>25 THEN GOTO hohnsen
soza=INT(RND*5+1)
GOSUB frei
LINE (0,0)-(640,200),1,BF
COLOR 0,1
LOCATE 5,20:PRINT "### SONDERZAHLUNG ###"
LOCATE 7,1
RESTORE wl
FOR soz=1 TO soza
READ soz$
NEXT
PRINT nam$(un);" zahlt für die Mitarbeiter seiner Firma ";firma$(un)
PRINT "aus gutem Herzen und voller Freude einen Betrag in Höhe von :"
soza=INT(RND*500)+50
PRINT soza;" DM je Mitarbeiter als ";soz$;"."
PRINT nam$(un);" beschäftigt ";besitz(un)*2;" Mitarbeiter und zahlt somit ";
PRINT soza*(besitz(un)*2);" DM"
kap(un)=kap(un)-soza*(besitz(un)*2)
text "KLICK MAUS"
GOSUB maus
GOSUB frei
PUT(0,0),ro%,PSET
hohnsen:
RETURN
wl:
DATA "Rentenbeitragsnachzahlung","Krankengeld","Erschwerniszulage"
DATA "Provision","Überstundenpauschale","guter Mensch"
erkl:
WINDOW OUTPUT 2
OPEN "I",#1,"trucking-erkl.txt"
erkl=1
CLS
WHILE NOT EOF(1)
LINE INPUT #1,erkl$
PRINT erkl$
IF erkl=23 THEN
PRINT ">>> TASTE <<<"
WHILE INKEY$=""
WEND
CLS
erkl=0
END IF
erkl=erkl+1
WEND
CLOSE#1
PRINT ">>> TASTE <<<"
WHILE INKEY$=""
WEND
l=1:GOSUB ladebild
GOTO abfr